The Object Plant is a OOA/OOD tool based on the OMT notation. It can be used to create
Object Models, State Diagrams, Event Trace Diagrams and finally it can generate C++
code skeletons.
The Object Plant folder contents:
- Object Plant README 1.4 this file
- Object Plant PowerPC version of the program
- 68k Object Plant 68k version of the program
- C++ Data Types text file with a subset of the standard C++ types
- C++Template.cc template file for generation of C++ code skeletons
- C++Template.h template file for generation of C++ code skeletons
- Class.java template file for generation of Java code skeletons
- Interface.java template file for generation of Java code skeletons
- HTML Class template template file for generation of class HTML
documentation
- HTML Interface template template file for generation of interface HTML
documentation
- User's manual the user's manual in pdf (Acrobat) format
- Example (Object Plant) an example document
- Register program for creating register forms to be sent to Kagi
Requirements:
System 7.1 or later
68020 or better
2 Mb free RAM
Registering
To register use the Register program to create a register form which then shall be sent
to Kagi Shareware using mail, email or fax.
The price for a single license is 25 USD, there are also site and world licenses available for
500 USD resp. 2000 USD.
http://www.kagi.com
Email: shareware@kagi.com (1 to 3 day processing time delay)
FAX: +1 510 652 6589 (4 to 8 day processing time delay)
Postal address: (4 to 8 day delay plus transit time to Kagi)
Kagi
1442-A Walnut Street #392-MU
Berkeley, California, 94709-1405
USA
Please note that Kagi automatically rejects any electronic payment that come includes
a hotmail.com address. Refer to http://www.kagi.com/FAQs/hotmail.com
N.B. Kagi is a payment processing company and they are not the author/shipper of the
product. Any problems with receiving registration codes or any problems with the product itself shall be addressed to the author at m-arc@algonet.se or micke@kagi.com
Registration codes will be sent to you normally within a week after receive a
confirmation of your order from Kagi.
Disclaimer
This software is provided "as-is". I take no responsiblity in any damage caused by the
software, use of the software or any of its outputs such as generated code. Use it at
your own risk.
Changes in 1.4 (10 Augusti 1997)
• Corrected some problems with "Export Page...". When "Best fit" is selected a best fit
will actually be done when exporting in EPS format. This was not true in previous
releases.
• Class names are sorted in popup-menus. Not a complete sorting but only on the first 4
characters (to make it fast).
• Screen update problems when opening and closing description box for operations has
been fixed.
• Added package tool in all diagrams.
• I have tried to make it easier to grab line selection boxes.
• UML generalization arrows are now prettier.
• Removed ... from New in file menu.
• Added possibility to declare a operation/attribute final. This is useful when
generating Java code. New Java templates will be released later.
• Added possibility to declare an initial value for attributes. Useful for Java.
• Corrected bug related to copying of static methods. Now the static flag is copied
correctly.
• Corrected a bug that made the Copy command only copy the visible area of a window,
not all selected items.
• Corrected a crash bug related to Notes.
• Corrected a crash bug related to deleting items in Event Trace diagrams.
• Larger selection area for threads.
• No drag-and-drop if the system doesn't support it. Should make it possible to run
under 7.1 again.
• Corrected screen update problem when editing the class name in the main window.
• When editing an item's name in a main window (by clicking on the name and the name
turns into a editable textfield), the textfield will now revert to non-editable when
hitting the return key.
• Correctly quite a few crash bugs. Earlier versions of the program left items in the
model even if you deleted them. These "dangling" items were often the cause of
crashes.
• Corrected a problem related to copy&paste. If you had copied an operation (or
attribute) and then tried to copy&paste a text in a class info window, the text
didn't get copied but only the last copied operation.
• The grow icon in the right lower corner was missing in the Page info window when
the window was resized. This has now been fixed.
• When opening a document with windows larger than the current screen, the windows
are automatically resized to fit the current screen.
• Added consistency checks that are run when opening a document. They are fast and
shall not be noticable to the user but adds a great deal of security. Should reduce
the possibility of crashing when deleting items, or when closing a document.
• This version includes traceback symbols to give better logs if (when?) crashing.
• Deleting an operation no longer causes a crash.
• Deleting a class with references on other pages no longer causes a crash.
• Fixed a crash bug related to classes with associations.
• Fixed a bug that made some attributes invisible when drag-and-drop a new attribute.
(Same goes for operations.)
• Exported pictures shall no longer contain "selection handles".
• Better scrollbar handling.
• Made the Copy Protection scheme "smarter". Even if Object Plant crashes you should
be able to restart it on the same machine without getting that annoying "...another
copy with the same registration number..." message. Perhaps it is a bit too "smart".
• The description field in page info windows will now be resized if you resize the
dialog window.
• The popup menu in the state page info window will now be redrawn when you change
the window size.
• You can add and delete parameters in the operation dialog window. Although the Add
Parameter menu item isn't active (I haven't figured out to get it active in a modal
dialog) the shortcut (shift-command-P) is active and can be used to add a parameter.
To delete a parameter select the parameter by clicking on the parameter and the
press either delete or backspace.
• Restructured the preferences dialog and moved it to the Edit menu.
• Names can be edited without bringing up a dialog window. This goes for class names,
interface names, state names, event trace thread names, use case names, package
names, and actor names. Just click on the name, hold the mouse still and it changes
into an editable text field. Clicking somewhere outside the name, changes the
textfield back to non-editable.
• If the "Open info window on create" option is disabled, the editable text field will be
enabled immediately when creating an item.
• Added a "Synchronized" flag for operations.
• Added an "Abstract" flag for operations (which is only enabled when the class is
abstract and makes it possible to generate code for both virtual and pure virtual
functions).
• The align dialog remembers its settings and position on screen.
• New set of icons. You may need to rebuild your desktop to see the new icons.
• Added the option to select which Object Model pages that should generate code.
Doubleclick on the page's name in the page palette and you will find a checkbox in
dialog window which can be checked for pages that shall generate code. Pages that
generate code are marked with an asterisk at the right end of the page palette list.
• Removed the "Other..." item in popup menus. Now there is a textfield which can be
used to enter types not available in the popupmenu. This is more in line with
Apple HIG.
• Corrected a bug that made operations and attributes disappear if
dragged-and-dropped onto themselves.
• Added feedback indication where drag-and-dropped items are being dragged to.
• Corrected some bugs related to closing of a document (after it has been saved). These
bugs caused crashes occasionally.
• Corrected a bug related to selection in dialog windows. Previously it was possible to
have an operation selected as well as a text area. If you tried to copy the text
(Edit->Copy) you would get the operation instead of the text. Now only one selection
shall be active at any time.
• Added Use Case diagrams.
• New line drawing algorithms in the Use Case window. You can select if you want a
line to always stay rectilinear or if shall be oblique. Furthermore the "snap-to-grid"
option is implemented in the Use Case diagram.
• Fixed a crash bug related to notes in the Event Trace window.
• And a lot more...
Known Bugs
• The main windows sometimes look "messy". Everything is not erased properly when
moving parts around.
• Illustrator has some problems parsing exported pictures (PICT format). All
textstrings are drawn in a white colour, hence they are invisible.
• The names of generalizations, aggregations and associations are never displayed.
• Moving a set of relationsships and classes can sometimes leave some of the lines
behind.
• If you use code generation, you cannot use the ':' character in class names.
• Line drawing is not very good. When changing between different views lines are not
updated (adjusted) as expected.
• The Java templates are not updated to handle the "final" and "Initial value" model
fields.
• If the "Page Setup" or "Print Page" commands do not work, try selecting a printer in
the chooser.
• Snap to grid is only implemented in the Use Case diagram page.
• Packages cannot be copied.
Use the web-page http://www.softsys.se/ObjectPlant/ to get new releases, report bugs etc.
Questions concerning the program can be sent directly to the author at m-arc@algonet.se or
micke@kagi.com
This program should only travel in the complete folder.
Have fun,
Mikael Arctaedius
Stockholm, Sweden
email: m-arc@algonet.se
http://www.softsys.se/ObjectPlant/
Release History
Changes in 1.3.4 (1 May 1997)
• Corrected a bug that could corrupt the object model (or state model) when using
several pages.
• Pressing TAB in a dialog window (i.e. a class dialog window) will move the
text-cursor to the next textfield but now also select that text.
• Added copy of PICT to the clipboard (consider this to be a beta version) making it
possible to easy insert graphics into other documents.
• If there are unterminated strings in a template file, Object Plant will give you a
syntax error warning and not crash into MacsBug (or the Finder if you don't have
MacsBug).
• Corrected a bug that could make Object Plant crash if generating code when the first
page had no real classes only subsystems. If it didn't crash, it didn't either generate
any code for the classes in the subsystems.
• Corrected some bugs related to generalizations. It wasn't possible to make a
multibranch generalization between interfaces. And Object Plant could crash if you
tried to make a branch from a interface generalization to a class.
• Added a consistency check that is run whenever you open a file. It will only detect
some of the possible consistency errors. If any errors are found, they can be fixed by
Object Plant.
• Corrected a bug that made it impossible to resize an event trace box when
interactions were connected to the very top of the box.
• Removed calls to AddResource when creating popup menus. This will make it possible
to run a locked copied of Object Plant, e.g. from a CD. It will also reduce the
possibility of running into problems when creating lots of popup menus.
• Opening a file with very large windows on a small screen will automatically resize
the windows to fit within the screen (in a single monitor configuration).
• Corrected minor UI bugs.
Changes in 1.3.3 (19 April 1997)
• Change the way File->Save and Save As operations are implemented. Now the
implementation is in line with what Inside Macintosh recommends. This includes
using a temporary file during save and when the save is completed, the temporary
file and the project file is replaced. This make it less possible that Object Plant will
corrupt project files if crashing during save.
• Removed a CDEF that was incompatible with MacOS 8.0a.
Changes in 1.3.2 (1 April 1997)
• Corrected a bug that occured when deleting pages. Both Object Model pages and State
Diagram pages were affected by this bug. The crash occured when trying to save a
document with a deleted page.
Changes in 1.3.1 (21 March 1997)
• Corrected the bug that caused a crash when adding new data types in the
File->Document Info->Data Types dialog.
• Corrected some bugs related to the copy function. Copying some parts of a state
diagram or an event trace diagram, caused a user break into Macsbug.
Changes in 1.3 (28 Feb 1997)
• Started implementation of the Unified Modeling Language notation. You can set the
notation used for a document in the File->Document Info->General dialog. The default
is OMT.
• Reference items (class or interface) are now displayed with its name as "page::class
name"' where page indicates which page the original item belongs to. This makes it
is easier to see which items that are references and also to locate the original item.
• Better code generation. Less empty lines. Tabs handled better etc. Please note that if
you have your own customized code generation template files they maybe have to be
modified. Any '"' (quote) characters must be included into a string. A string is
enclosed by "" (quotes). Within a string special characters like '\t', '"', '\\' may be
used, just like a C-string.
• Added Input/Output information to operation parameters. This may be used to
generate CORBA IDL code.
• Extended the code generation template language. Some of the new tags will not work
correctly on old files. This applies to the following tags {CONSISTOFLIST},
{PARTOFLIST} and {ASSOCLIST}. These tags are used in the HTML template file.
• Added the '$' character in front of static operations and attributes in the Object
Model.
• Made it possible for interfaces to inherit each other.
• Made it possible to have an association between a class and an interface.
• Added more template files: Java code generation and HTML documentation.
• Added an example project file.
• Corrected some UI glitches in the class dialog window.
• Corrected the bug that made operations and attributes created after a drag-and-drop
disappear.
• Drag-and-drop operations now mark the file as dirty.
• The static-field of an attribute is now correctly copied when using copy-paste.
• Corrected a bug that made Object Plant crash if you closed all three main windows,
accepted to close the document and then did cancel the save operation.
• Corrected a bug that made Object Plant crash if altering a document that was
previously saved with any other page selected that the very first in either the Object
Model or the State Diagram.
• Better region handling makes it easier to draw branches from generalization
"triangles" and aggregation "diamonds".
• A non-registered program can create max 20 classes and max 20 interfaces.
• Added a shortcut button in the "Other datatype" dialog which you can use to
immediately add a new datatype to the document's list of data types.
• And much more...
Changes in 1.2.4 (6 Feb 1997)
• Deleting a reference item such as a class reference corrupted the object model.
Having a corrupt object model could either cause a crash at opening, saving or closing
the document. This bug is fixed in 1.2.4.
Changes in 1.2.3 (4 Feb 1997)
• When creating an association it was not always drawn. This occured when the two
classes were "misaligned" forcing the association to use two right-angled lines.
Having an association with no lines could cause crashes when saving or opening the
document or even moving one of the two classes.
• The qualifier box of the "client" side of an association was not moved if that endpoint
of the association was moved.
Changes in 1.2.2 (15 Jan 1997)
• Corrected a bug that made it impossible to make reference classes (and interfaces)
refering to classes (interfaces) located on other pages than the very first Object
Model page.
• Corrected a bug that sometimes caused Object Plant to crash when closing a
document.
• Added EPS support for suppliers.
• Corrected a bug that made it impossible to use the knife tool on supplier lines.
• Corrected a bug that made oblique dashed lines take the wrong path.
• Tried to fix some problems with generalization line drawing.
• Tried to fix some problems with selecting lines.
Changes in 1.2.1 (7 Jan 1997)
• The Interface dialog window is now properly updated when clicking any of the
disclosure triangles.
• Generating code for classes or interfaces with no operation will now work.
• You can now open documents with one or several of the three main windows closed.
This caused a crash in the 1.2 version.
• Perhaps the Copy Protection is more "tolerant". Now I hope it will be possible to
restart Object Plant if it crashes without having to reboot the mac.
Changes in 1.2 (31 Dec 1996)
• Made it possible to select more than one attribute (or operation) in the class info
dialog using shift selection.
• Added possibility to have several "icons" refering to one single class. This can be
useful when a class needs to be included in several pages. E.g. if you have a common
base class called CObject which all other classes inherits, you create the CObject
class in one page and in the other pages you use a reference class refering to the
CObject class. (Refer to the User's Manual for details.)
• The above goes for interfaces too.
• Added truncation of filenames so that code generation for classes with long names
works.
• Removed MacsBug user breaks that occured when generating code.
• Corrected a code generation bug that occured when a class had a name identical to
the name of an Object Model page. Now created folders have a ƒ letter at the end of
the name thus reducing the possibility for this to occur. (Change in code generation
template files.)
• Made it possible to add parameters to interface operations.
• Added drag-and-drop to class, interface and state info windows. This can be used to
re-order attributes, operations within a class/interface or events within a state.
• Corrected the bug that caused an error alert show up saying "Serious Error. Please
Report. ... ClassType: <some large number>". This happened if you opened a file by
dropping it onto Object Plant or by doubleclicking on the file.
• Zooming of windows is now implemented according to Inside Macintosh. Hence
multiple screens will be handled in correct way.
• Corrected at least one of the bugs that caused a crash at startup of Object Plant.
• Better handling of multiple screens in the sense that if you save an Object Plant file
where you have the windows distributed over several screens and then open the file
when only one screen is available, the windows' positions are adjusted so that all
windows are visible on the available screen(s).
• Data types are now case sensitive.
• Some internal cleanup making Object Plant easier to maintain.
• The delete key can now be used to delete selected items in the Class info dialog. If no
item (such as an attribute or operation) is selected the delete key is applied to the
active text field. This change is valid also for the Interface info window and State
info window.
• Class and interface names are now written in a bold font.
Changes in 1.1.1 (4 Dec 1996)
• Corrected the bug that made class descriptions not to be stored.
• Made it compatible with extensions like Stretch and Church Window WDEFs.
• Corrected a bug that made updates in the Class info window not work as expected.
• Corrected the bug that prevented text inside notes from being printed.
• Corrected a bug that made Object Plant sometimes crash when clicking in the
attributes or operations disclosure triangle.
• Added FlushVol calls to make Save and Save As operations more secure.
• Corrected a bug that sometimes amde Object Plant crash when deleting a class.
Changes in 1.1 (6 Nov 1996)
• The generalization triangle is now directed towards the superclass regardless of the
physical position of the superclass and subclass.
• Made the SUBSYSTEM tag valid in top-level and class-level in the template language.
• Corrected the bug that made Object Plant crash when trying to copy an association.
• Corrected the bug that made Object Plant stop with a warning popup (or break into
Macsbug) saying "Cannot create popupmenu".
• Full implementation shift-clicking. If you shift-click on an already selected object it
will be deselected.
• Corrected the bug that caused Object Plant not to generate code for classes below a
subsystem which did only contain subsystems and no real classes.
• Lists will now show up correctly even when using monitors supporting thousands of
colours. Previously these lists were all black.
• Added two new items to the Object Model diagrams: Interfaces and supplier relations.
• Changed the code generation template language so that generating code with multiple
inheritance is possible.
• Added "static" checkbox to attributes and operations. Affects only code generation.
• Better screen updates.
• Corrected other minor bugs.
Changes in 1.0 (9 Oct 1996)
• Made line movements more smooth. Straight lines are kept straight whenever
possible.
• Added a DESCRIPTION tag to be used in code generation.